<?php
/************************************************************
*                                                           *
*       author: Sebastian Elias Franco Brantes              *
*       description: Controlador Principal                  *
*               recive todas las peticiones a la pagina     *
*       Date: 18-06-2012                                    *
*                                                           *
************************************************************/
class FrontController
{
	static function main()
	{
		//Incluimos algunas clases:
                require_once 'Protected/Controllers/config.php';        //Archivo con configuraciones.
		require_once 'Protected/Conf/config.php';               //de configuracion
		require_once 'Protected/Controllers/SPDO.php';          //PDO con singleton
		require_once 'Protected/Controllers/views.php';         //Mini motor de plantillas
                require_once 'Protected/Controllers/controllerBase.php';//Clase Base Abstracta de los controladores
                require_once 'Protected/Models/modelBase.php';          //Clase Base Abstracta de los Modelos
 
		//Con el objetivo de no repetir nombre de clases, nuestros controladores
		//terminaran todos en Controller. Por ej, la clase controladora Items, será ItemsController
 
		//Formamos el nombre del Controlador o en su defecto, tomamos que es el IndexController
		//$_SESSION = SADSF Sesion Adquisiciones Sebastian Franco
                //$_GET = sadsf Sesion Adquisiciones Sebastian Franco
                
                if(isset($_SESSION['CPANELSF']))
                { 
                     //Formamos el nombre del Controlador o en su defecto, tomamos que es el IndexController
                    if(! empty($_GET['cpanelsf']))
                        $controllerName = $_GET['cpanelsf'] . 'Controller';
                    else
                        $controllerName = "indexController";

                    //Lo mismo sucede con las acciones, si no hay accion, tomamos index como accion
                    if(! empty($_GET['accion']))
                        $actionName = $_GET['accion'];
                    else
                        $actionName = "index";
                }
                else
                {
                    if (isset($_POST['usuUsername'])){
                        if(! empty($_GET['cpanelsf']))
                        $controllerName = $_GET['cpanelsf'] . 'Controller';
                    else
                        $controllerName = "indexController";
                    //Lo mismo sucede con las acciones, si no hay accion, tomamos index como accion
                    if(! empty($_GET['accion']))
                        $actionName = $_GET['accion'];
                    else
                        $actionName = "index";
                    }
                    else {
                    $controllerName = "indexController";
                     $actionName = "login";   
                    }
                }
 
		$controllerPath = $config->get('controllersFolder') . $controllerName . '.php';
 
		//Incluimos el fichero que contiene nuestra clase controladora solicitada
		if(is_file($controllerPath))
		      require $controllerPath;
		else
		      die('El controlador no existe - 404 not found');
 
		//Si no existe la clase que buscamos y su acción, tiramos un error 404
		if (is_callable(array($controllerName, $actionName)) == false){
                    trigger_error ($controllerName . '->' . $actionName . '` no existe', E_USER_NOTICE);
                    return false;
		}
		//Si todo esta bien, creamos una instancia del controlador y llamamos a la accion
		$controller = new $controllerName();
		$controller->$actionName();
	}
}
?>
